package cn.net.generrics;
/*通过【泛型方法和增强for循环】遍历，引用数据类型的数组。*/
public class TestGeneric2 {
    public static void main(String[] args) {
        //1.三个引用类型的数组
        Integer[] a = {1, 2, 3, 4, 5};
        String[] b = {"一", "二", "三"};
        Double[] c = {2.5, 1.8, 3.7};

        print(a);//2.调用方法，进行循环遍历:1 2 3 4 5
        print(b);//一  二  三
        print(c);//

    }
    /**【泛型方法】可实现多类型的引用，使用E表示元素类型**/
    /**泛型的优点：减少代码冗余，提高代码通用性。*/
    //泛型应用在方法上，需同时存在两个地方。一个是传入参数类型为(E[] e)泛型，另一个为返回值前的<E>泛型类型。
        private static <E>  void print(E[] e) {
                for(E f :e){ //增强for循环遍历+使用泛型的格式
                    System.out.println(f);
                }
        }

//    private static void print(Integer[] a) {
//        //3.1普通for循环遍历：好处：可以设置循环次数，可以单独索引想要的下标值
//        for (int i = 0; i <a.length ; i++) {
//            System.out.println(a[i]);//1 2 3 4 5
//        }
//        //3.2高效(增强)for循环：好处：写法简单，执行效率高。坏处：无法索引下标值，只能依次遍历，无法设置步长
//        //for(1元素类型 2起的元素名 :3需要遍历的原素){ System.out.println(元素名); }
//       for(Integer i : a){
//           System.out.println(i);//1 2 3 4 5
//       }
//
//    }private static void print(String[] b) {
//        for (int i = 0; i <b.length ; i++) {
//            System.out.println(b[i]);
//        }
//        for(String s : b){
//            System.out.println(s);
//        }
//    }private static void print(Double[] c) {
//        for (int i = 0; i <c.length ; i++) {
//            System.out.println(c[i]);
//        }
//        for(Double d : c){
//            System.out.println(d);
//        }
//     }





}

